#ifndef ASGKA_NET_H
#define ASGKA_NET_H

#include <map>
#include <vector>
#include <string>
#include <winsock.h>
#include <windows.h>

#define KEYLENGTH	313

void asgka_setup(const std::string &mylocalname, HWND wnd = HWND_BROADCAST);
void asgka_msgToWnd(HWND wnd = HWND_BROADCAST);
void asgka_close();
void asgka_search();
void asgka_leaveGroup(const std::string &groupname);
std::map<std::string, u_long> asgka_getGroupMember(const std::string &groupname);
void asgka_createGroup(const std::string &groupname, const std::vector<std::string> &member_list);
std::map<std::string, u_long> asgka_getMemberList();
std::string asgka_getGroupLeaderName(const std::string &groupname);
int asgka_joinGroup(const std::string &groupname, const std::string &groupleadername);
void asgka_addMember(const std::string &groupname, const std::string &membername);
void asgka_kickOut(const std::string &groupname, const std::string &membername);

#endif // ASGKA_NET_H
